name: Build and test --dev image

on: [push, pull_request]

env:
  APP_NAME: devrails
  APP_PATH: dev/devrails

jobs:
  build-and-test-dev-image:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: '3.2'
        bundler-cache: true
    - name: Generate --dev app
      run: |
        bundle exec railties/exe/rails new $APP_PATH --dev
    - name: Build image
      run: |
        podman build -t $APP_NAME \
        -v $(pwd):$(pwd) \
        -f ./$APP_PATH/Dockerfile \
        ./$APP_PATH
    - name: Run container
      run: |
        podman run --name $APP_NAME \
        -v $(pwd):$(pwd) \
        -e SECRET_KEY_BASE_DUMMY=1 \
        -p 3000:3000 $APP_NAME &
    - name: Test container
      run: ruby -r ./.github/workflows/scripts/test-container.rb

  notify:
    runs-on: ubuntu-latest
    if: always() && github.ref_name == 'main'
    continue-on-error: true
    needs: build-and-test-dev-image
    steps:
      - uses: zzak/action-discord@v4
        with:
          webhook: ${{ secrets.DISCORD_WEBHOOK }}
